Typically, a storage device includes a storage medium comprised of a plurality of data tracks. The storage capacity of the storage device is related, in part, to how wide the data tracks are and how closely they can be packed together. By decreasing the width of the data tracks and/or the spacing between adjacent data tracks, the overall capacity of the storage device can be increased.
In a perpendicular magnetic recording (PMR) system, the direction of magnetization associated with a magnetic storage medium is perpendicular to the surface of the medium. The width of data tracks written using the PMR system is determined based on the width of the write pole. By narrowing the width of the write pole, the width of the data tracks is decreased and areal density is increased. However, as write pole width continues to narrow, it becomes progressively more difficult to generate a magnetic field of sufficient strength to change the direction of magnetization of the magnetic storage medium.
One solution that has been proposed and utilized is the use of shingled data tracks in what is known as shingled magnetic recording (SMR) systems. In a SMR system, the width of the write pole remains the same, but data tracks are written sequentially with each successive data track being shingled (i.e., written to partially overlap) over the previously written data track. In this way, the data track that is partially written over is narrowed by the shingling of the next track, resulting in the desired narrow track width. This is sometimes referred to as a “write wide, read narrow” system, because the width of the write head may be substantially wider than the width of the read head.
A drawback of SMR systems, however, is the inability to re-write data once it has been shingled. Because the width of the write head is wide, re-writing a shingled track results in adjacent tracks being damaged. That is, data must be written sequentially, and a re-write of the data track requires re-writing of all shingled data tracks, not just the track that corresponds with the new data to be written.
To address this shortcoming, storage mediums utilizing SMR are divided into different types of regions, commonly referred to as an “I-region” and an “E-region”. The E-region is typically much smaller than the I-region (i.e., holds much less data), and is used as a cache to store data before writing sequentially in the I-region. The E-region is typically not shingled, and therefore allows random write operations. The I-region is shingled, and therefore must be written sequentially with data from the E-region. However, this requires data to be written twice; once to the E-region or cache and then a second time from E-region to the I-region. This is a time-consuming operation which decreases the overall performance of the storage device.
A solution to this problem is to write data directly to the I-region without first going through the E-region or cache. However, this requires additional overhead to maintain because a logical block address (utilized by the host system) will not correspond with a particular physical block address on the storage device. That is, the logical block address will need to be shifted or re-mapped to different physical block addresses as data is re-written to the I-region. An indirection mapping system may be utilized to keep track of mapping between logical block addresses (LBAs) and physical block addresses (PBAs). In addition, if data is being written directly to a shingled area (e.g., I-region), a determination must be made whether the data write operation will adversely affect neighboring data tracks. This requires additional overhead to determine and keep track of whether adjacent data tracks include valid data that cannot be lost in which data cannot be re-written easily. Typically, directly writing to the shingled area or I-region (i.e., write-in place update) requires a searching review of the mapping of all LBAs to PBAs, which is a time-consuming and therefore cost prohibitive procedure. It would therefore be beneficial to provide a system that allows in-place updates of shingled data while reducing the cost or overhead associated with such updates.